summaryrefslogtreecommitdiff
path: root/app/[lng]/evcp/(evcp)/(master-data)/bid-projects/layout.tsx
blob: 5994d3f96d0418701269dd7393e8f85130b6c3ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import * as React from "react"
import { BidProjectsContainer } from "@/components/bidding-projects/bid-projects-container"
import { Shell } from "@/components/shell"
import { DataTableSkeleton } from "@/components/data-table/data-table-skeleton"
import { useTranslation } from "@/i18n"

// Layout 컴포넌트는 서버 컴포넌트입니다
export default async function BidProjectsLayout({
  params,
  children,
}: {
  params: Promise<{ lng: string }>
  children: React.ReactNode
}) {
  const { lng } = await params
  const { t } = await useTranslation(lng, 'menu')
  
  // 프로젝트 타입 정의
  const projectTypes = [
    { id: "all", name: t('common.all') || "전체" },
    { id: "SHIP", name: t('groups.shipbuilding') },
    { id: "TOP", name: `${t('groups.offshore')} TOP` },
    { id: "HULL", name: `${t('groups.offshore')} HULL` },
  ]

  return (
    <Shell className="gap-4">
      <React.Suspense
        fallback={
          <DataTableSkeleton
            columnCount={6}
            searchableColumnCount={1}
            filterableColumnCount={2}
            cellWidths={["10rem", "40rem", "12rem", "12rem", "8rem", "8rem"]}
            shrinkZero
          />
        }
      >
        <BidProjectsContainer lng={lng} projectTypes={projectTypes}>
          {children}
        </BidProjectsContainer>
      </React.Suspense>
    </Shell>
  )
}